Переглянути джерело

Functional Website Chat

version-14
Achilles Rasquinha 7 роки тому
джерело
коміт
5f522510d5
4 змінених файлів з 22 додано та 11 видалено
  1. +2
    -2
      frappe/chat/doctype/chat_message/chat_message.py
  2. +3
    -3
      frappe/chat/doctype/chat_room/chat_room.py
  3. +16
    -6
      frappe/public/js/frappe/chat.js
  4. +1
    -0
      socketio.js

+ 2
- 2
frappe/chat/doctype/chat_message/chat_message.py Переглянути файл

@@ -126,14 +126,14 @@ def get_new_chat_message(user, room, content):

return resp

@frappe.whitelist()
@frappe.whitelist(allow_guest = True)
def send(user, room, content):
mess = get_new_chat_message(user, room, content)
frappe.publish_realtime('frappe.chat.message:create', mess, room = room,
after_commit = True)

@frappe.whitelist()
@frappe.whitelist(allow_guest = True)
def seen(message, user = None):
mess = frappe.get_doc('Chat Message', message)
mess.add_seen(user)


+ 3
- 3
frappe/chat/doctype/chat_room/chat_room.py Переглянути файл

@@ -138,7 +138,6 @@ def get(user, rooms = None, fields = None, filters = None):
if not fields or 'users' in fields:
for i, r in enumerate(rooms):
droom = frappe.get_doc('Chat Room', r.name)
print(droom.users)
rooms[i]['users'] = [ ]

for duser in droom.users:
@@ -210,9 +209,10 @@ def create(kind, owner, users = None, name = None):

return room

@frappe.whitelist()
@frappe.whitelist(allow_guest = True)
def history(room, user, fields = None, limit = 10, start = None, end = None):
authenticate(user)
if frappe.get_doc('Chat Room', room).type != 'Visitor':
authenticate(user)

fields = safe_json_loads(fields)



+ 16
- 6
frappe/public/js/frappe/chat.js Переглянути файл

@@ -1435,7 +1435,7 @@ class extends Component {
}

make ( ) {
if ( frappe.session.user != 'Guest' )
if ( frappe.session.user != 'Guest' ) {
frappe.chat.profile.create([
"status", "message_preview", "notification_tones", "conversation_tones"
]).then(profile => {
@@ -1451,6 +1451,9 @@ class extends Component {

this.bind()
})
} else {
this.bind()
}
}

bind ( ) {
@@ -2106,7 +2109,7 @@ class extends Component {
return (
h("div", { class: "panel-heading", style: { "height": "50px" } }, // sorry. :(
h("div", { class: "level" },
popper ?
popper && frappe.session.user !== "Guest" ?
h(frappe.components.Button,{class:"btn-back",onclick:props.on_back},
h(frappe.components.Octicon, { type: "chevron-left" })
) : null,
@@ -2542,13 +2545,20 @@ frappe.chat.render = (render = true, force = false) =>
})
}

frappe.chat.room.create("Visitor", token).then(room => {
frappe.chat.room.create("Visitor", token).then((room) => {
frappe.log.info(`Visitor Room Created: ${JSON.stringify(room, null, 2)}`)
frappe.chat.room.subscribe(room.name)
frappe.chatter.render({
room: room

var reference = room;

frappe.chat.room.history(room.name, messages => {
const room = { ...reference, messages: messages }
frappe.log.info(`Rendering Visitor Room: ${JSON.stringify(room, null, 2)}`)
frappe.chatter.render({
room: room
})
})
})
} else {
frappe.chatter.render()


+ 1
- 0
socketio.js Переглянути файл

@@ -213,6 +213,7 @@ io.on('connection', function (socket) {

subscriber.on("message", function (channel, message, room) {
message = JSON.parse(message)
console.log("Dispatching to Room: " + message.room + " event " + message.event + " with message " + JSON.stringify(message.message));
io.to(message.room).emit(message.event, message.message)
});



Завантаження…
Відмінити
Зберегти