From e94b7e192e3887fff7dd390984c4573597c8c9f8 Mon Sep 17 00:00:00 2001 From: Dan Seripap Date: Thu, 25 Feb 2016 23:39:04 -0500 Subject: [PATCH 1/4] Fix for safari/ios not being able to access filereader --- src/js/fileHandler.js | 3 --- src/js/window.js | 3 ++- src/public/style.css | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/js/fileHandler.js b/src/js/fileHandler.js index df60dad..48e0508 100644 --- a/src/js/fileHandler.js +++ b/src/js/fileHandler.js @@ -128,9 +128,6 @@ export default class FileHandler { listen() { // browser API document.getElementById('fileInput').addEventListener('change', this.confirmTransfer.bind(this), false); - - // darkwire - return this; } diff --git a/src/js/window.js b/src/js/window.js index abb9c8c..853c08e 100644 --- a/src/js/window.js +++ b/src/js/window.js @@ -33,7 +33,7 @@ export default class WindowHandler { if (this.fileHandler.isSupported) { $('#send-file').click((e) => { e.preventDefault(); - $('#fileInput').trigger('click'); + document.getElementById('fileInput').click(); }); } else { $('#send-file').remove(); @@ -51,6 +51,7 @@ export default class WindowHandler { window.onblur = () => { this._isActive = false; }; + } } diff --git a/src/public/style.css b/src/public/style.css index d39147e..7745f9e 100644 --- a/src/public/style.css +++ b/src/public/style.css @@ -47,6 +47,10 @@ html, body { padding: 0; } +img { + max-width: 100%; +} + @font-face { 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'); @@ -308,7 +312,16 @@ html.no-touchevents .chat #input-icons { } #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 { From 10b1e9c0129fb3c0804d62daea90139b8d932f09 Mon Sep 17 00:00:00 2001 From: Dan Seripap Date: Fri, 26 Feb 2016 00:36:54 -0500 Subject: [PATCH 2/4] Better checking of username colors, throw error on blank slash commands --- src/js/chat.js | 9 ++++++--- src/js/main.js | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/js/chat.js b/src/js/chat.js index 4b6881a..59eeeb8 100644 --- a/src/js/chat.js +++ b/src/js/chat.js @@ -29,7 +29,10 @@ export default class Chat { let usernameContainer = $('') .text(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')); } } @@ -51,7 +54,7 @@ export default class Chat { checkIfUsername(words) { let matchedUsernames = []; 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++) { let exactMatch = words[i].match(usernameMatch) || false; let usernameInMemory = this.usernamesInMemory.indexOf(words[i]) > -1; @@ -241,7 +244,7 @@ export default class Chat { if (commandToTrigger) { expectedParams = commandToTrigger.paramaters.length; 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}); } } diff --git a/src/js/main.js b/src/js/main.js index fc7f8d0..fbc3954 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -104,7 +104,7 @@ $(function() { socket.on('user update', (data) => { darkwire.updateUser(data).then((oldUsername) => { - chat.log(oldUsername + ' changed name to ' + data.username); + chat.log(oldUsername + ' changed name to ' + data.username); renderParticipantsList(); }); }); From 87dc8cc056f291341f6366439867332424f11b2b Mon Sep 17 00:00:00 2001 From: Dan Seripap Date: Fri, 26 Feb 2016 09:14:28 -0500 Subject: [PATCH 3/4] Back to jquery --- src/js/window.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/window.js b/src/js/window.js index 853c08e..02c0854 100644 --- a/src/js/window.js +++ b/src/js/window.js @@ -33,7 +33,7 @@ export default class WindowHandler { if (this.fileHandler.isSupported) { $('#send-file').click((e) => { e.preventDefault(); - document.getElementById('fileInput').click(); + $('#fileInput').trigger('click'); }); } else { $('#send-file').remove(); From 4a087e0988c2c8557b2769887fdcaa657730f05c Mon Sep 17 00:00:00 2001 From: Dan Seripap Date: Fri, 26 Feb 2016 14:23:50 -0500 Subject: [PATCH 4/4] Version Up --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 125e44a..7773b20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "darkwire", - "version": "1.2.3", + "version": "1.5.0", "description": "Encrypted web socket chat", "main": "index.js", "dependencies": {