Commit ee2ca54d87c32399c6fcf6613f2bf64c9904aa39
1 parent
5e7b5b97
Exists in
master
and in
3 other branches
Updating mural comment notification
Showing
2 changed files
with
40 additions
and
12 deletions
Show diff stats
amadeus/static/js/socket.js
| ... | ... | @@ -16,7 +16,7 @@ socket.onmessage = function(e) { |
| 16 | 16 | muralNotificationMuralUpdate(content); |
| 17 | 17 | } else if (content.subtype == "mural_delete") { |
| 18 | 18 | muralNotificationMuralDelete(content); |
| 19 | - } else if (content.subtype == "create_comment") { | |
| 19 | + } else if (content.subtype == "comment") { | |
| 20 | 20 | muralNotificationComment(content); |
| 21 | 21 | } |
| 22 | 22 | } |
| ... | ... | @@ -103,11 +103,26 @@ function muralNotificationMuralDelete(content) { |
| 103 | 103 | } |
| 104 | 104 | |
| 105 | 105 | function muralNotificationComment(content) { |
| 106 | - if (window.location.pathname == content.pathname) { | |
| 107 | - if ($("#post-" + content.post_id).is(":visible")) { | |
| 108 | - var section = $("#post-" + content.post_id).find('.comment-section'); | |
| 106 | + var page = window.location.pathname, | |
| 107 | + render = (content.paths.indexOf(page) != -1), | |
| 108 | + checker = ""; | |
| 109 | + | |
| 110 | + switch (content.post_type) { | |
| 111 | + case "categorypost": | |
| 112 | + checker = "category"; | |
| 113 | + break; | |
| 114 | + case "subjectpost": | |
| 115 | + checker = "subject"; | |
| 116 | + break; | |
| 117 | + } | |
| 118 | + | |
| 119 | + if ((render && page.indexOf(checker) != -1) || (render && content.post_type == "generalpost")) { | |
| 120 | + var section = $(content.container); | |
| 109 | 121 | |
| 110 | - section.append(content.complete); | |
| 122 | + if (section.is(":visible") || section.is(":hidden")) { | |
| 123 | + var comments = section.find('.comment-section'); | |
| 124 | + | |
| 125 | + comments.append(content.complete); | |
| 111 | 126 | } |
| 112 | 127 | } else { |
| 113 | 128 | $('.mural_badge').each(function () { |
| ... | ... | @@ -130,7 +145,7 @@ function muralNotificationComment(content) { |
| 130 | 145 | if (("Notification" in window)) { |
| 131 | 146 | var options = { |
| 132 | 147 | icon: content.user_icon, |
| 133 | - body: content.simple | |
| 148 | + body: content.simple_notify | |
| 134 | 149 | } |
| 135 | 150 | |
| 136 | 151 | if (Notification.permission === "granted") { | ... | ... |
mural/views.py
| ... | ... | @@ -787,16 +787,29 @@ class CommentCreate(LoginRequiredMixin, generic.edit.CreateView): |
| 787 | 787 | |
| 788 | 788 | users = getSpaceUsers(self.request.user.id, post) |
| 789 | 789 | entries = [] |
| 790 | + | |
| 791 | + paths = [ | |
| 792 | + reverse("mural:manage_general"), | |
| 793 | + reverse("mural:manage_category"), | |
| 794 | + reverse("mural:manage_subject") | |
| 795 | + ] | |
| 790 | 796 | |
| 791 | - notify_type = "mural" | |
| 792 | - user_icon = self.object.user.image_url | |
| 793 | - _view = render_to_string("mural/_view_comment.html", {"comment": self.object}, self.request) | |
| 794 | - simple_notify = _("%s has commented in a post")%(str(self.object.user)) | |
| 795 | - pathname = reverse("mural:manage_general") | |
| 797 | + notification = { | |
| 798 | + "type": "mural", | |
| 799 | + "subtype": "comment", | |
| 800 | + "paths": paths, | |
| 801 | + "user_icon": self.object.user.image_url, | |
| 802 | + "simple_notify": _("%s has commented in a post")%(str(self.object.user)), | |
| 803 | + "complete": render_to_string("mural/_view_comment.html", {"comment": self.object}, self.request), | |
| 804 | + "container": "#post-id" + str(post.get_id()), | |
| 805 | + "post_type": post._my_subclass | |
| 806 | + } | |
| 807 | + | |
| 808 | + notification = json.dumps(notification) | |
| 796 | 809 | |
| 797 | 810 | for user in users: |
| 798 | 811 | entries.append(MuralVisualizations(viewed = False, user = user, comment = self.object)) |
| 799 | - Group("user-%s" % user.id).send({'text': json.dumps({"type": notify_type, "subtype": "create_comment", "user_icon": user_icon, "pathname": pathname, "simple": simple_notify, "complete": _view, "post_id": post.get_id()})}) | |
| 812 | + Group("user-%s" % user.id).send({'text': notification}) | |
| 800 | 813 | |
| 801 | 814 | MuralVisualizations.objects.bulk_create(entries) |
| 802 | 815 | ... | ... |