diff options
author | geoffwhittington <geoff@sdelements.com> | 2015-03-14 22:48:49 -0400 |
---|---|---|
committer | geoffwhittington <geoff@sdelements.com> | 2015-03-14 22:48:49 -0400 |
commit | a16c0edf1ae3d1cc3cb913ba154b8dda6fd5f25d (patch) | |
tree | 417301c7fc32a31ab9745e35afdfd61c856b76f1 | |
parent | 6bc710bc9d37b713e20db6e92b47aa1b8b4664c1 (diff) | |
download | lets-chat-origin/feature/84_close_img.zip lets-chat-origin/feature/84_close_img.tar.gz lets-chat-origin/feature/84_close_img.tar.bz2 |
fixes #84origin/feature/84_close_img
-rw-r--r-- | media/js/util/message.js | 6 | ||||
-rw-r--r-- | media/js/views/room.js | 19 | ||||
-rw-r--r-- | media/less/style/chat/messages.less | 4 |
3 files changed, 22 insertions, 7 deletions
diff --git a/media/js/util/message.js b/media/js/util/message.js index 6138bfa..9a68835 100644 --- a/media/js/util/message.js +++ b/media/js/util/message.js @@ -74,7 +74,7 @@ if (typeof exports !== 'undefined') { }); } - function links(text) { + function links(text, data) { var imagePattern = /^\s*((https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;'"!()]*[-A-Z0-9+&@#\/%=~_|][.](jpe?g|png|gif))\s*$/i, linkPattern = /((https?|ftp):\/\/[-A-Z0-9+&*@#\/%?=~_|!:,.;'"!()]*[-A-Z0-9+&@#\/%=~_|])/ig; @@ -82,8 +82,8 @@ if (typeof exports !== 'undefined') { return text.replace(imagePattern, function(url) { var uri = encodeURI(_.unescape(url)); return '<a class="thumbnail" href="' + uri + - '" target="_blank"><img src="' + uri + - '" alt="Pasted Image" /></a>'; + '" target="_blank"><img id="obj' + data.message.id + '" src="' + uri + + '" alt="Pasted Image" ></a><span data-id="obj' + data.message.id +'" class="lcb-object-delete">X</span>'; }); } else { return text.replace(linkPattern, function(url) { diff --git a/media/js/views/room.js b/media/js/views/room.js index e5dce5e..ba95920 100644 --- a/media/js/views/room.js +++ b/media/js/views/room.js @@ -21,7 +21,8 @@ 'click .submit-edit-room': 'submitEditRoom', 'click .archive-room': 'archiveRoom', 'click .lcb-room-poke': 'poke', - 'click .lcb-upload-trigger': 'upload' + 'click .lcb-upload-trigger': 'upload', + 'click .lcb-object-delete': 'deleteObject' }, initialize: function(options) { this.client = options.client; @@ -333,7 +334,7 @@ var $text = $html.find('.lcb-message-text'); var that = this; - this.formatMessage($text.html(), function(text) { + this.formatMessage($text.html(), message, function(text) { $text.html(text); $html.find('time').updateTimeStamp(); that.$messages.append($html); @@ -347,14 +348,15 @@ }); }, - formatMessage: function(text, cb) { + formatMessage: function(text, message, cb) { var client = this.client; client.getEmotes(function(emotes) { client.getReplacements(function(replacements) { var data = { emotes: emotes, replacements: replacements, - rooms: client.rooms + rooms: client.rooms, + message: message }; var msg = window.utils.message.format(text, data); @@ -390,6 +392,15 @@ this.remove(); Backbone.View.prototype.remove.call(this); }, + deleteObject: function(e) { + var target = $(e.currentTarget), + objectId = target.data('id'), + object = this.$('#' + objectId); + + if (!object) return; + + object.remove(); + }, poke: function(e) { var $target = $(e.currentTarget), $root = $target.closest('[data-id],[data-owner]'), diff --git a/media/less/style/chat/messages.less b/media/less/style/chat/messages.less index a182f99..5e1a5c0 100644 --- a/media/less/style/chat/messages.less +++ b/media/less/style/chat/messages.less @@ -103,6 +103,10 @@ } } +.lcb-object-delete:hover { + cursor: pointer; +} + // Eugh Firefox @-moz-document url-prefix() { .lcb-message-text { |