diff --git a/.meteor/packages b/.meteor/packages index aa90b2de72b5..4a4bc0c6a199 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -58,3 +58,4 @@ todda00:friendly-slugs underscorestring:underscore.string yasaricli:slugify konecty:nrr +kevohagan:sweetalert diff --git a/.meteor/versions b/.meteor/versions index 9da48a853e8b..322a06a3c8ef 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -46,6 +46,7 @@ jparker:crypto-md5@0.1.1 jparker:gravatar@0.3.1 jquery@1.11.3_2 json@1.0.3 +kevohagan:sweetalert@1.0.0 konecty:autolinker@1.0.2 konecty:delayed-task@1.0.0 konecty:mongo-counter@0.0.3 diff --git a/client/lib/chatMessages.coffee b/client/lib/chatMessages.coffee index ef11ed6de1b0..e9e2d03be9a8 100644 --- a/client/lib/chatMessages.coffee +++ b/client/lib/chatMessages.coffee @@ -92,6 +92,12 @@ stopTyping() Meteor.call 'sendMessage', { rid: rid, msg: msg, day: window.day } + deleteMsg = (element) -> + id = element.getAttribute("id") + Meteor.call 'deleteMessage', { id: id }, (error, result) -> + if error + return Errors.throw error.reason + update = (id, input) -> if _.trim(input.value) isnt '' msg = input.value @@ -171,6 +177,7 @@ # isScrollable: isScrollable # toBottom: toBottom keydown: keydown + deleteMsg: deleteMsg send: send init: init edit: edit diff --git a/client/lib/collections.coffee b/client/lib/collections.coffee index 1b5c116c1a2e..e312eedc8af4 100644 --- a/client/lib/collections.coffee +++ b/client/lib/collections.coffee @@ -13,3 +13,6 @@ Meteor.startup -> changed: (record) -> ChatMessageHistory.update {_id: record._id, msg: {$ne: record.msg}}, record + + removed: (record) -> + ChatMessageHistory.remove {_id: record._id} diff --git a/client/methods/updateMessage.coffee b/client/methods/updateMessage.coffee index bc10c20a1442..edad52307844 100644 --- a/client/methods/updateMessage.coffee +++ b/client/methods/updateMessage.coffee @@ -15,3 +15,13 @@ Meteor.methods $set: ets: message.ets message: message.msg + + deleteMessage: (message) -> + if not Meteor.userId() + throw new Meteor.Error 203, t('general.User_logged_out') + + Tracker.nonreactive -> + + ChatMessage.remove + _id: message.id + 'u._id': Meteor.userId() diff --git a/client/stylesheets/base.less b/client/stylesheets/base.less index fe290e2c6ec6..6333cfb63a37 100644 --- a/client/stylesheets/base.less +++ b/client/stylesheets/base.less @@ -1956,6 +1956,13 @@ a.github-fork { &.own:hover .edit-message { display: inline-block; } + .delete-message { + display: none; + cursor: pointer; + } + &.own:hover .delete-message { + display: inline-block; + } .user { display: inline-block; font-weight: 600; @@ -1989,8 +1996,8 @@ a.github-fork { .info { position: absolute; text-align: right; - left: -15px; - width: 55px; + left: -20px; + width: 65px; .time { display: none; } @@ -1999,8 +2006,12 @@ a.github-fork { } .edit-message { float: left; - margin-left: 5px; + margin-left: 1px; + } + .delete-message { + float: left; } + } &:hover { .time { diff --git a/client/views/app/message.html b/client/views/app/message.html index abe36fb80683..dbabfeeda17e 100644 --- a/client/views/app/message.html +++ b/client/views/app/message.html @@ -8,6 +8,7 @@ ({{_ "edited"}}) {{/if}} +