Merge branch 'develop' into feature/cmdk

* develop:
  Version Up
  Back to jquery
  Better checking of username colors, throw error on blank slash commands
  Fix for safari/ios not being able to access filereader
This commit is contained in:
Dan Seripap 2016-02-26 14:49:46 -05:00
commit 7fa4517e01
6 changed files with 23 additions and 9 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "darkwire", "name": "darkwire",
"version": "1.2.3", "version": "1.5.0",
"description": "Encrypted web socket chat", "description": "Encrypted web socket chat",
"main": "index.js", "main": "index.js",
"dependencies": { "dependencies": {

View File

@ -34,7 +34,10 @@ export default class Chat {
let usernameContainer = $('<span/>') let usernameContainer = $('<span/>')
.text(matchedUsernames[i]) .text(matchedUsernames[i])
.css('color', this.getUsernameColor(matchedUsernames[i])); .css('color', this.getUsernameColor(matchedUsernames[i]));
message = message.replace(matchedUsernames[i], usernameContainer.prop('outerHTML'));
// Match only the username
let matchedUsernameOnly = new RegExp('(' + matchedUsernames[i] + ')(?![^<]*>|[^<>]*<\/)', 'gm');
message = message.replace(matchedUsernameOnly, usernameContainer.prop('outerHTML'));
} }
} }
@ -56,7 +59,7 @@ export default class Chat {
checkIfUsername(words) { checkIfUsername(words) {
let matchedUsernames = []; let matchedUsernames = [];
this.darkwire.users.forEach((user) => { this.darkwire.users.forEach((user) => {
let usernameMatch = new RegExp('^' + user.username + '$', 'g'); let usernameMatch = new RegExp('^' + user.username + '$');
for (let i = 0; i < words.length; i++) { for (let i = 0; i < words.length; i++) {
let exactMatch = words[i].match(usernameMatch) || false; let exactMatch = words[i].match(usernameMatch) || false;
let usernameInMemory = this.usernamesInMemory.indexOf(words[i]) > -1; let usernameInMemory = this.usernamesInMemory.indexOf(words[i]) > -1;
@ -255,7 +258,7 @@ export default class Chat {
if (commandToTrigger) { if (commandToTrigger) {
expectedParams = commandToTrigger.paramaters.length; expectedParams = commandToTrigger.paramaters.length;
if (expectedParams && trigger.params.length > expectedParams || expectedParams && trigger.params.length < expectedParams) { if (expectedParams && trigger.params.length > expectedParams || expectedParams && trigger.params.length < expectedParams) {
if (!commandToTrigger.multple && trigger.params.length < 1) { if ((!commandToTrigger.multple && trigger.params.length < 1) || (trigger.params.length >= 1 && trigger.params[0] === '')) {
return this.log('Missing or too many paramater. Usage: ' + commandToTrigger.usage, {error: true}); return this.log('Missing or too many paramater. Usage: ' + commandToTrigger.usage, {error: true});
} }
} }

View File

@ -128,9 +128,6 @@ export default class FileHandler {
listen() { listen() {
// browser API // browser API
document.getElementById('fileInput').addEventListener('change', this.confirmTransfer.bind(this), false); document.getElementById('fileInput').addEventListener('change', this.confirmTransfer.bind(this), false);
// darkwire
return this; return this;
} }

View File

@ -111,7 +111,7 @@ $(function() {
socket.on('user update', (data) => { socket.on('user update', (data) => {
darkwire.updateUser(data).then((oldUsername) => { darkwire.updateUser(data).then((oldUsername) => {
chat.log(oldUsername + ' changed name to ' + data.username); chat.log(oldUsername + ' <span>changed name to</span> ' + data.username);
renderParticipantsList(); renderParticipantsList();
}); });
}); });

View File

@ -51,6 +51,7 @@ export default class WindowHandler {
window.onblur = () => { window.onblur = () => {
this._isActive = false; this._isActive = false;
}; };
} }
} }

View File

@ -47,6 +47,10 @@ html, body {
padding: 0; padding: 0;
} }
img {
max-width: 100%;
}
@font-face { @font-face {
font-family: 'SourceCodePro-Regular'; font-family: 'SourceCodePro-Regular';
src: url('fonts/SourceCodePro-Regular.eot?#iefix') format('embedded-opentype'), url('fonts/SourceCodePro-Regular.woff') format('woff'), url('fonts/SourceCodePro-Regular.ttf') format('truetype'), url('fonts/SourceCodePro-Regular.svg#SourceCodePro-Regular') format('svg'); src: url('fonts/SourceCodePro-Regular.eot?#iefix') format('embedded-opentype'), url('fonts/SourceCodePro-Regular.woff') format('woff'), url('fonts/SourceCodePro-Regular.ttf') format('truetype'), url('fonts/SourceCodePro-Regular.svg#SourceCodePro-Regular') format('svg');
@ -308,7 +312,16 @@ html.no-touchevents .chat #input-icons {
} }
#fileInput { #fileInput {
display: none; position: absolute;
top: 0;
right: 45px;
margin: 0;
opacity: 0;
-ms-filter: 'alpha(opacity=0)';
font-size: 200px;
direction: ltr;
cursor: pointer;
width: 45px;
} }
.file-disclaimer { .file-disclaimer {