diff --git a/packages/rocketchat-ui-flextab/flex-tab/tabs/uploadedFilesList.coffee b/packages/rocketchat-ui-flextab/flex-tab/tabs/uploadedFilesList.coffee index edb45b8d693d74866dd358642d52056029cd2ae5..14bcf19abfed5573346adbbb7dd269f82f9ba253 100644 --- a/packages/rocketchat-ui-flextab/flex-tab/tabs/uploadedFilesList.coffee +++ b/packages/rocketchat-ui-flextab/flex-tab/tabs/uploadedFilesList.coffee @@ -24,9 +24,7 @@ Template.uploadedFilesList.helpers return s.escapeHTML @name canDelete: -> - msg = ChatMessage.findOne { file: { _id: @_id } } - if msg - return RocketChat.authz.hasAtLeastOnePermission('delete-message', msg.rid) or RocketChat.settings.get('Message_AllowDeleting') and msg.u?._id is Meteor.userId() + return RocketChat.authz.hasAtLeastOnePermission('delete-message', @rid) or RocketChat.settings.get('Message_AllowDeleting') and @userId is Meteor.userId() Template.uploadedFilesList.events 'click .room-file-item': (e, t) -> @@ -53,9 +51,15 @@ Template.uploadedFilesList.events timer: 1000 showConfirmButton: false + # Check if the upload message for this file is currently loaded msg = ChatMessage.findOne { file: { _id: self._id } } RocketChat.models.Uploads.remove self._id, () -> - chatMessages[Session.get('openedRoom')].deleteMsg(msg); + if msg + chatMessages[Session.get('openedRoom')].deleteMsg(msg); + else + Meteor.call 'deleteFileMessage', self._id, (error, result) -> + if error + return Errors.throw error.reason 'scroll .content': _.throttle (e, t) -> if e.target.scrollTop >= e.target.scrollHeight - e.target.clientHeight diff --git a/server/methods/deleteMessage.coffee b/server/methods/deleteMessage.coffee index 7244a1350f261c96a4036ab4a106bda040527a18..d51985e786b930f5953bd9488f72375024805576 100644 --- a/server/methods/deleteMessage.coffee +++ b/server/methods/deleteMessage.coffee @@ -38,4 +38,8 @@ Meteor.methods if showDeletedStatus RocketChat.models.Messages.setAsDeletedById originalMessage._id else - RocketChat.Notifications.notifyRoom originalMessage.rid, 'deleteMessage', { _id: originalMessage._id } + RocketChat.Notifications.notifyRoom originalMessage.rid, 'deleteMessage', {_id: originalMessage._id} + + , + deleteFileMessage: (fileID) -> + Meteor.call 'deleteMessage', RocketChat.models.Messages.findOne { file: { _id: fileID } } diff --git a/server/publications/roomFiles.coffee b/server/publications/roomFiles.coffee index e69b75a400680fb4bade2ec7f96409f05ec66af6..7bbf518ffec941e71f087df141c2c33b12b3332c 100644 --- a/server/publications/roomFiles.coffee +++ b/server/publications/roomFiles.coffee @@ -17,6 +17,7 @@ Meteor.publish 'roomFiles', (rid, limit = 50) -> uploadedAt: -1 fields: _id: 1 + userId: 1 rid: 1 name: 1 type: 1