summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgeoffwhittington <geoff@sdelements.com>2015-03-14 22:48:49 -0400
committergeoffwhittington <geoff@sdelements.com>2015-03-14 22:48:49 -0400
commita16c0edf1ae3d1cc3cb913ba154b8dda6fd5f25d (patch)
tree417301c7fc32a31ab9745e35afdfd61c856b76f1
parent6bc710bc9d37b713e20db6e92b47aa1b8b4664c1 (diff)
downloadlets-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
-rw-r--r--media/js/util/message.js6
-rw-r--r--media/js/views/room.js19
-rw-r--r--media/less/style/chat/messages.less4
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 {