![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/tech_preview/hr/ |
Upload File : |
hr.chats.changeNameGroup = function(host, chatid, name){ return new Promise(function(resolve, reject){ FormClass.api_call({ url: "chat_change_name_group.php", params: [ {name: "chatid", value: chatid}, {name: "name", value: name} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var sessionIndex = host.database.chat_sessions.getIndex(chatid); host.database.chat_sessions.items[sessionIndex].name = name; resolve(); var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; var membersIdList = []; for (var i = 0; i < host.database.chat_sessions.items[sessionIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[sessionIndex].membersIdList[i].userid); } hr.sendMessageFunc({ messageType: "chat", type: "change_group_name", id: chatid, name: name, membersIdList: membersIdList, randomId: randomId }); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.chats.loadOldMess = function(host, chatid){ return new Promise(function(resolve, reject){ var sessionIndex = host.database.chat_sessions.getIndex(chatid); var item; if (sessionIndex < 0){ item = host.dataChatOpen; } else { item = host.database.chat_sessions.items[sessionIndex]; } if (item.archivedIdList.length == 0){ resolve([]); } else { var archivedid = item.archivedIdList[0]; ModalElement.show_loading(); FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "chat_load_old_message"}, {name: "archivedid", value: archivedid} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ var content = EncodingClass.string.toVariable(message.substr(2)); item.content = content.concat(item.content); item.archivedIdList.splice(0, 1); resolve(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); } }); }; hr.chats.removeMemberGroup = function(host, chatid, userid){ return new Promise(function(resolve, reject){ FormClass.api_call({ url: "chat_remove_member_group.php", params: [ {name: "chatid", value: chatid}, {name: "userRemove", value: userid}, {name: "localid", value: (new Date()).getTime()} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); var sessionIndex = host.database.chat_sessions.getIndex(chatid); var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; var membersIdList = []; for (var i = 0; i < host.database.chat_sessions.items[sessionIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[sessionIndex].membersIdList[i].userid); } hr.sendMessageFunc({ messageType: "chat", type: "remove_member_group", id: chatid, membersIdList: membersIdList, userRemove: userid, newMess: st.newMess, userid: systemconfig.userid, randomId: randomId }); for (var i = 0; i < host.database.chat_sessions.items[sessionIndex].membersIdList.length; i++){ if (host.database.chat_sessions.items[sessionIndex].membersIdList[i].userid == userid){ host.database.chat_sessions.items[sessionIndex].membersIdList.splice(i, 1); break; } } host.database.chat_sessions.items[sessionIndex].content.push(st.newMess); resolve(st.newMess); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.chats.deleteGroup = function(host, chatid){ return new Promise(function(resolve, reject){ FormClass.api_call({ url: "chats_delete_group.php", params: [{name: "chatid", value: chatid}], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var sessionIndex = host.database.chat_sessions.getIndex(chatid); host.database.chat_sessions.items[sessionIndex].isdelete = true;//làm dấu chỉ xóa nội dung chat resolve(); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.chats.seenMess = function(host, chatid, localid){ return new Promise(function(resolve, reject){ var data = { chatid: chatid, mess_seen_id: localid }; FormClass.api_call({ url: "chat_seen_message.php", params: [ {name: "data", value: EncodingClass.string.fromVariable(data)} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var cIndex = host.database.chat_sessions.getIndex(chatid); if (cIndex >= 0){ host.database.chat_sessions.items[cIndex].mess_seen_id = localid; } resolve(true); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.chats.changeAvatarGroup = function(host, chatid, src){ return new Promise(function(resolve, reject){ var x = src.indexOf("/"); var y = src.indexOf(";base64"); var suffixesFile = src.substr(x + 1, y - x - 1); var blob = absol.file.dataURItoBlob(src); var avatarFile = absol.file.blobToFile(blob, contentModule.generateRandom() + "." + suffixesFile); FormClass.api_call({ url: "chat_change_avatar_group.php", params: [ {name: "chatid", value: chatid}, {name: "avatarname", value: avatarFile.name} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ function saveFile(){ var sessionIndex = host.database.chat_sessions.getIndex(chatid); if (host.database.chat_sessions.items[sessionIndex].avatar != "" && host.database.chat_sessions.items[sessionIndex].file_new){ systemconfig.connectorFile.delete({ index: 0, path: ["hr", "group_avatars"], files: [chatid + "_" + host.database.chat_sessions.items[sessionIndex].avatar], onsuccess: function (){ console.log("success"); }, onfailed: function (content){ console.log(content); } }); } systemconfig.connectorFile.upload({ index: 0, path: ["hr", "group_avatars"], filehandle: avatarFile, filename: chatid + "_" + avatarFile.name, onsuccess: function (content){ console.log(content); }, onfailed: function (content){ ModalElement.alert({message: LanguageModule.text("war_txt_no_upload_file")}); console.log(content); } }); host.database.chat_sessions.items[sessionIndex].avatar = avatarFile.name; resolve(); var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; var membersIdList = []; for (var i = 0; i < host.database.chat_sessions.items[sessionIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[sessionIndex].membersIdList[i].userid); } hr.sendMessageFunc({ messageType: "chat", type: "change_group_avatar", id: chatid, avatarSrc: window.domainGroup_avatars + avatarFile.name, membersIdList: membersIdList, randomId: randomId }); }; systemconfig.loadFolderFunc().then(function(value){ if (value) saveFile(); else { systemconfig.reconnectFile().then(function(){ saveFile(); }); } }); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.chats.reactionMessage = function(host, chatid, localid, icon){ return new Promise(function(resolve, reject){ var data = { chatid: chatid, localid: localid }; if (icon === "REMOVE"){ data.type = "remove"; } else { data.type = "add"; data.emoji = icon.text; } FormClass.api_call({ url: "chats_reaction_message.php", params: [{name: "data", value: EncodingClass.string.fromVariable(data)}], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var extra = EncodingClass.string.toVariable(message.substr(2)); var sIndex = host.database.chat_sessions.getIndex(chatid); for (var j = 0; j < host.database.chat_sessions.items[sIndex].content.length; j++){ if (host.database.chat_sessions.items[sIndex].content[j].localid == localid){ host.database.chat_sessions.items[sIndex].content[j].extra = extra; break; } } resolve(extra); var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; var membersIdList = []; for (var i = 0; i < host.database.chat_sessions.items[sIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[sIndex].membersIdList[i].userid); } hr.sendMessageFunc({ messageType: "chat", type: "reactionmessage", localid: localid, id: chatid, membersIdList: membersIdList, randomId: randomId, extra: extra }); } else { console.log(message); } } else { console.log(message); } } }) }); }; hr.chats.deleteMessage = function(host, chatid, localid){ return new Promise(function(resolve, reject){ var data = { localid: localid, chatid: chatid }; FormClass.api_call({ url: "chats_delete_message.php", params: [{name: "data", value: EncodingClass.string.fromVariable(data)}], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var sIndex = host.database.chat_sessions.getIndex(chatid); for (var j = 0; j < host.database.chat_sessions.items[sIndex].content.length; j++){ if (host.database.chat_sessions.items[sIndex].content[j].localid == localid){ if (host.database.chat_sessions.items[sIndex].content[j].content_type == "img" || host.database.chat_sessions.items[sIndex].content[j].content_type == "file"){ var filename = localid + "_" + host.database.chat_sessions.items[sIndex].content[j].content + ".upload"; var path = ["hr", "files"]; function deleteFile(){ systemconfig.connectorFile.delete({ index: 0, path: path, files: [filename], onsuccess: function (){ console.log("success"); }, onfailed: function (content){ console.log(content); } }); }; systemconfig.loadFolderFunc().then(function(value){ if (value) deleteFile(); else { systemconfig.reconnectFile().then(function(){ deleteFile(); }); } }); } break; } } resolve(); var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; var membersIdList = []; for (var i = 0; i < host.database.chat_sessions.items[sIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[sIndex].membersIdList[i].userid); } hr.sendMessageFunc({ messageType: "chat", type: "deletemessage", localid: localid, id: chatid, membersIdList: membersIdList, randomId: randomId }); } else { // console.log(message); } } else { // console.log(message);; } } }); }); }; hr.chats.editMessage = function(host, chatid, localid, content, quote){ return new Promise(function(resolve, reject){ var data = { localid: localid, chatid: chatid, content: content, quote: quote }; FormClass.api_call({ url: "chats_edit_message.php", params: [{name: "data", value: EncodingClass.string.fromVariable(data)}], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var sIndex = host.database.chat_sessions.getIndex(chatid); var userIndex; for (var j = 0; j < host.database.chat_sessions.items[sIndex].content.length; j++){ if (host.database.chat_sessions.items[sIndex].content[j].localid == localid){ host.database.chat_sessions.items[sIndex].content[j].content = content; host.database.chat_sessions.items[sIndex].content[j].isEdit = 1; if (!host.database.chat_sessions.items[sIndex].content[j].extra){ host.database.chat_sessions.items[sIndex].content[j].extra = {}; } host.database.chat_sessions.items[sIndex].content[j].extra.quote = quote; } } var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; var membersIdList = []; for (var i = 0; i < host.database.chat_sessions.items[sIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[sIndex].membersIdList[i].userid); } var dataDraw = { messageType: "chat", type: "editmessage", localid: localid, content: content, quote: quote, id: chatid, membersIdList: membersIdList, randomId: randomId }; resolve(dataDraw); hr.sendMessageFunc(dataDraw); } else { ModalElement.alert({message: message}); } } else { var dataDraw = { type: "editmessage", localid: localid, content: content, chatid: chatid, randomId: randomId, failed: true }; resolve(dataDraw); } } }); }); }; hr.chats.sendMessage = function (host, chatid, text, files, images, quote, listIdLocal) { return new Promise(function (resolveMessage, rejectMessage) { var listFile = files.concat(images); var allUploadFiles = []; listFile.forEach(function (file, index) { allUploadFiles.push(new Promise(function (rs, rj) { function saveFile() { var typeFile; if (file.type.startsWith('image/')) { typeFile = "img"; } else { typeFile = "file"; } var path = ["hr", "files"]; systemconfig.connectorFile.upload({ index: 0, path: path, filehandle: file, filename: listIdLocal[index] + "_" + file.name + ".upload", onsuccess: function (content) { rs({ type: typeFile, name: file.name }); }, onfailed: function (content) { ModalElement.alert({ message: LanguageModule.text("war_txt_no_upload_file") }); console.log(message); } }); }; systemconfig.loadFolderFunc().then(function (value) { if (value) saveFile(); else { systemconfig.reconnectFile().then(function () { saveFile(); }); } }); })); }); Promise.all(allUploadFiles).then(function (listMessageFile) { var membersIdList = []; var cIndex = host.database.chat_sessions.getIndex(chatid); if (cIndex >= 0){ for (var i = 0; i < host.database.chat_sessions.items[cIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[cIndex].membersIdList[i].userid); } } else { for (var i = 0; i < host.dataChatOpen.membersIdList.length; i++){ membersIdList.push(host.dataChatOpen.membersIdList[i].userid); } } var dataDraw = []; dataDraw.id = chatid; var paramsUrl = [ { name: "chatid", value: chatid }, { name: "fullname", value: systemconfig.fullname }, { name: "text", value: text }, { name: "listIdLocal", value: EncodingClass.string.fromVariable(listIdLocal) }, { name: "membersIdList", value: EncodingClass.string.fromVariable(membersIdList) }, { name: "listMessageFile", value: EncodingClass.string.fromVariable(listMessageFile) }, { name: "domainUploads", value: window.domainFilesNew} ]; if (quote) { paramsUrl.push({ name: "quote", value: EncodingClass.string.fromVariable(quote) }); } FormClass.api_call({ url: "chats_save_message.php", params: paramsUrl, func: function (success, message) { var drawMessage = function (failed) { for (var i = 0; i < listMessageFile.length; i++) { if (listMessageFile[i].type == "img") { dataDraw.push({ localid: listIdLocal[i], content: listMessageFile[i].name, userid: systemconfig.userid, fullname: systemconfig.fullname, content_type: "img", m_time: new Date(), failed: failed }); } else { dataDraw.push({ localid: listIdLocal[i], content: listMessageFile[i].name, userid: systemconfig.userid, fullname: systemconfig.fullname, content_type: "file", m_time: new Date(), failed: failed }); } } if (text != "" || quote) { dataDraw.push({ localid: listIdLocal[listIdLocal.length - 1], content: text, userid: systemconfig.userid, fullname: systemconfig.fullname, content_type: "text", m_time: new Date(), failed: failed, extra: { quote: quote } }); } resolveMessage(dataDraw); if (!failed) { if (cIndex < 0){ hr.chats.loadSessionNew(host, chatid).then(function(value){ var mItemsNew = host.chatBar.getMessItem(value); host.chatBar.listChatContent.insertBefore(mItemsNew, host.chatBar.listChatContent.firstChild); host.chatBar.listMessItemView.unshift({ id: value.id, elt: mItemsNew }); }); } var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; hr.sendMessageFunc({ messageType: "chat", type: "add", dataDraw: dataDraw, id: chatid, membersIdList: membersIdList, randomId: randomId, userid: systemconfig.userid }); } }; if (success) { if (message.substr(0, 2) == "ok") { drawMessage(); } else { ModalElement.alert({ message: message }); } } else { drawMessage(true); } }.bind(this) }); }.bind(this)); }); }; hr.chats.dissolveGroup = function(host, chatid){ return new Promise(function(resolve, reject){ FormClass.api_call({ url: "chats_dissolve_group.php", params: [ {name: "chatid", value: chatid} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); var sIndex = host.database.chat_sessions.getIndex(chatid); var membersIdList = []; for (var i = 0; i < host.database.chat_sessions.items[sIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[sIndex].membersIdList[i].userid); } var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; hr.sendMessageFunc({ messageType: "chat", type: "dissolve_group", id: chatid, membersIdList: membersIdList, userid: systemconfig.userid, randomId: randomId }); host.database.chat_sessions.items.splice(sIndex, 1); for (var i = host.database.chat_session_members.items.length -1; i >= 0; i--){ if (host.database.chat_session_members.items[i].chatid == chatid) host.database.chat_session_members.items.splice(i, 1); } resolve(); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.chats.addMemberGroup = function(host, chatid, listMember){ return new Promise(function(resolve, reject){ FormClass.api_call({ url: "chat_add_member_group.php", params: [ {name: "chatid", value: chatid}, {name: "listMember", value: EncodingClass.string.fromVariable(listMember)}, {name: "localid", value: (new Date()).getTime()} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); var sessionIndex = host.database.chat_sessions.getIndex(chatid); for (var i = 0; i < listMember.length; i++){ host.database.chat_sessions.items[sessionIndex].membersIdList.push({ userid: listMember[i], privilege: 0 }); } st.newMess.fullname = systemconfig.fullname; host.database.chat_sessions.items[sessionIndex].content.push(st.newMess); resolve(st.newMess); var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; var membersIdList = []; for (var i = 0; i < host.database.chat_sessions.items[sessionIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[sessionIndex].membersIdList[i].userid); } hr.sendMessageFunc({ messageType: "chat", type: "add_member_group", id: chatid, membersIdList: membersIdList, listMemberAdd: listMember, newMess: st.newMess, userid: systemconfig.userid, randomId: randomId }); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.chats.leaveGroup = function(host, chatid){ return new Promise(function(resolve, reject){ FormClass.api_call({ url: "chats_leave_group.php", params: [ {name: "chatid", value: chatid}, {name: "localid", value: (new Date()).getTime()} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); var sIndex = host.database.chat_sessions.getIndex(chatid); var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; var membersIdList = []; for (var i = 0; i < host.database.chat_sessions.items[sIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[sIndex].membersIdList[i].userid); } hr.sendMessageFunc({ messageType: "chat", type: "leave_group", id: chatid, membersIdList: membersIdList, userLeave: systemconfig.userid, newMess: st.newMess, userid: systemconfig.userid, randomId: randomId }); host.database.chat_sessions.items.splice(sIndex, 1); for (var i = host.database.chat_session_members.items.length -1; i >= 0; i--){ if (host.database.chat_session_members.items[i].chatid == chatid) host.database.chat_session_members.items.splice(i, 1); } resolve(); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.chats.addGroupChatFuncSubmit = function(host, data){ return new Promise(function(resolve, reject){ data.listMember.unshift(systemconfig.userid); if (data.name == ""){ var userIndex; if (data.listMember.length > 2){ for (var i = 0; i < data.listMember.length; i++){ userIndex = host.database.users.getByhomeid(data.listMember[i]); if (i > 0) data.name += ", "; data.name += host.database.users.items[userIndex].fullname; } } } ModalElement.show_loading(); var localid = (new Date()).getTime(); FormClass.api_call({ url: "chats_add_session.php", params: [ {name: "data", value: EncodingClass.string.fromVariable(data)}, {name: "localid", value: localid} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); var chatid = st.dataSession.id; var tempIndex = host.database.chat_sessions.getIndex(chatid); if (tempIndex >= 0){ if (host.database.chat_sessions.items[tempIndex].isdelete !== undefined && host.database.chat_sessions.items[tempIndex].isdelete) host.database.chat_sessions.items.splice(tempIndex, 1); for (var i = host.database.chat_session_members.items.length - 1; i >= 0; i--){ if (host.database.chat_session_members.items[i].chatid == chatid) host.database.chat_session_members.items.splice(i, 1); } } var chatIndex = host.database.chat_sessions.getIndex(chatid); if (chatIndex < 0){ host.database.chat_sessions.items.push(st.dataSession); for (var i = 0; i < st.members.length; i++){ host.database.chat_session_members.items.push(st.members[i]); } contentModule.makeChat_session_membersIndex(host); chatIndex = host.database.chat_sessions.getIndex(chatid); host.database.chat_sessions.items[chatIndex].content = EncodingClass.string.toVariable(host.database.chat_sessions.items[chatIndex].content); host.database.chat_sessions.items[chatIndex].archivedIdList = []; var k, archcontent; for (var i = 0; i < st.dataArchived.length; i++){ st.dataArchived[i].chatIndex = k = host.database.chat_sessions.getIndex(st.dataArchived[i].chatid); if (st.dataArchived[i].content !== undefined){ st.dataArchived[i].content = EncodingClass.string.toVariable(st.dataArchived[i].content); host.database.chat_sessions.items[k].content = st.dataArchived[i].content.concat(host.database.chat_sessions.items[k].content); } else { host.database.chat_sessions.items[k].archivedIdList.push(host.database.archived_chats.items.length); } host.database.archived_chats.items.push(st.dataArchived[i]); } host.database.chat_sessions.items[chatIndex].membersIdList = []; var privilege = 0; if (data.listMember.length > 2) host.database.chat_sessions.items[chatIndex].privilege = 2; for (var i = 0; i < data.listMember.length; i++){ if (data.listMember.length > 2){ privilege = (systemconfig.userid == data.listMember[i])? 2 : 0; } host.database.chat_sessions.items[chatIndex].membersIdList.push({ userid: data.listMember[i], privilege: privilege }); } if (host.database.chat_sessions.items[chatIndex].start_mess_id) { var content = []; for (var j = host.database.chat_sessions.items[chatIndex].content.length - 1; j >= 0; j--){ if (host.database.chat_sessions.items[chatIndex].content[j].localid > host.database.chat_sessions.items[chatIndex].start_mess_id) { content.unshift(host.database.chat_sessions.items[chatIndex].content[j]); } else if (host.database.chat_sessions.items[chatIndex].content[j].localid <= host.database.chat_sessions.items[chatIndex].start_mess_id) { host.database.chat_sessions.items[chatIndex].archivedIdList = []; break; } } host.database.chat_sessions.items[chatIndex].content = content; } contentModule.makeArchivedChat(host, host.database.chat_sessions.items[chatIndex]); contentModule.generateDataChat(host, host.database.chat_sessions.items[chatIndex]); } resolve(host.database.chat_sessions.items[chatIndex]); if (st.isAdd){ var randomId = contentModule.generateRandom(); host.listMessRandomCreate[randomId] = true; var membersIdList = []; for (var i = 0; i < host.database.chat_sessions.items[chatIndex].membersIdList.length; i++){ membersIdList.push(host.database.chat_sessions.items[chatIndex].membersIdList[i].userid); } hr.sendMessageFunc({ messageType: "chat", type: "add_session", dataSession: { id: host.database.chat_sessions.items[chatIndex].id, name: host.database.chat_sessions.items[chatIndex].name, lasttime: new Date(), content: st.dataSession.content, archivedIdList: [] }, id: host.database.chat_sessions.items[chatIndex].id, membersIdList: membersIdList, randomId: randomId, userid: systemconfig.userid }); } } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.chats.addGroupChatFunc = function(host){ return new Promise(function(resolve, reject){ var res = contentModule.getAddGroupChatView(host); ModalElement.showWindow({ title: LanguageModule.text("txt_add_group"), bodycontent: res, buttonlist: [ { text: LanguageModule.text("txt_ok"), onclick: function(){ var data = res.getValue(); if (!data) return; hr.chats.addGroupChatFuncSubmit(host, data).then(function(value){ ModalElement.close(); resolve(value); }); } }, { text: LanguageModule.text("txt_cancel"), onclick: function(){ ModalElement.close(); } } ] }); }); }; hr.chats.loadChat_sessionsOld = function(host){ return new Promise(function(resolve, reject){ var startIndex = host.database.chat_sessions.items.length; ModalElement.show_loading(); FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "chat_load_old_session"}, {name: "startIndex", value: startIndex} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); var x = { database: {} }; contentModule.makeDatabaseContent(x, st); contentModule.makeChat_session_membersIndex(x); for (var i = 0; i < x.database.chat_sessions.items.length; i++){ contentModule.makeArchivedChat(x, x.database.chat_sessions.items[i]); contentModule.generateDataChat(host, x.database.chat_sessions.items[i]); } host.database.chat_sessions.items = x.database.chat_sessions.items.concat(host.database.chat_sessions.items); resolve(x.database.chat_sessions.items); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}) } } }) }); }; hr.chats.loadSessionNew = function(host, id){ return new Promise(function(resolve, reject){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "chat_load_session"}, {name: "id", value: id} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); console.log(st); var x = {database: {}}; contentModule.makeDatabaseContent(x, st); contentModule.makeChat_session_membersIndex(x); x.database.users = host.database.users; for (var i = 0; i < x.database.chat_sessions.items.length; i++){ contentModule.makeArchivedChat(x, x.database.chat_sessions.items[i]); contentModule.generateDataChat(host, x.database.chat_sessions.items[i]); } host.database.chat_sessions.items = x.database.chat_sessions.items.concat(host.database.chat_sessions.items); resolve(x.database.chat_sessions.items[0]); console.log(x.database.chat_sessions.items[0]); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.chats.openNewChatFromId = function(host, chatid){ var index = host.database.chat_sessions.getIndex(chatid); if (index >= 0){ host.chatBar.func.openChatBoxFunc(host.database.chat_sessions.items[index]); } else { ModalElement.show_loading(); FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "chat_load_session"}, {name: "id", value: chatid} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); var x = {database: {}}; contentModule.makeDatabaseContent(x, st); contentModule.makeChat_session_membersIndex(x); x.database.users = host.database.users; for (var i = 0; i < x.database.chat_sessions.items.length; i++){ contentModule.makeArchivedChat(x, x.database.chat_sessions.items[i]); contentModule.generateDataChat(host, x.database.chat_sessions.items[i]); } host.chatBar.func.openChatBoxFunc(x.database.chat_sessions.items[0]); host.dataChatOpen = x.database.chat_sessions.items[0]; } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); } }; hr.chats.init = function(host){ return new Promise(function(resolve, reject){ host.listMessRandomCreate = {}; ModalElement.show_loading(); Promise.all([data_module.loadChatList(), data_module.loadEmployeeItemsPrivView()]).then(function(values){ for (x in values[1]){ host[x] = values[1][x]; } contentModule.newMessFunc(host); ModalElement.close(-1); contentModule.makeDatabaseContent(host, values[0]); contentModule.makeChat_session_membersIndex(host); contentModule.makeUserEmployeeName(host); for (var i = 0; i < host.database.chat_sessions.items.length; i++){ contentModule.makeArchivedChat(host, host.database.chat_sessions.items[i]); contentModule.generateDataChat(host, host.database.chat_sessions.items[i]); } host.dropChatActive = function(){ DOMElement.removeAllChildren(rightCtn); }; host.historyOpenChat = {}; host.chatBar = new ChatBar({ database: host.database, orgViewDic: host.orgViewDic, orgEditDic: host.orgEditDic, employeeEditDic: host.employeeEditDic, data: host.database.chat_sessions.items, func: { addgroupFunc: function(){ return hr.chats.addGroupChatFunc(host); }, loadChat_sessionsOldFunc: function(){ return hr.chats.loadChat_sessionsOld(host); }, openChatBoxFunc: function(data){ if (host.chatActive){ if (host.chatActive.id == data.id) return; } var chatBox = new ChatBox({ database: host.database, viewNameChat: true, data: data }); var chatBoxView = chatBox.getView(); setTimeout(function () { chatBox.vMediaInput.focus(); if (host.historyOpenChat[data.id]){ chatBox.vMediaInput.mode = host.historyOpenChat[data.id].vMediaInput.mode; chatBox.vMediaInput.text = host.historyOpenChat[data.id].vMediaInput.text; chatBox.vMediaInput.files = host.historyOpenChat[data.id].vMediaInput.files; chatBox.vMediaInput.images = host.historyOpenChat[data.id].vMediaInput.images; chatBox.localidEdit = host.historyOpenChat[data.id].localidEdit; } }, 100); DOMElement.removeAllChildren(rightCtn); rightCtn.appendChild(chatBoxView); host.chatActive = { id: data.id, chatBox: chatBox }; } } }); var rightCtn = DOMElement.div({ attrs: {style: {display: "inline-block", verticalAlign: "top", height: "100%", width: "calc(100% - 400px)"}} }); var singlePage = DOMElement.div({ attrs: {style: {height: "100%"}}, children: [ DOMElement.div({ attrs: {style: {display: "inline-block", verticalAlign: "top", height: "100%", width: "400px"}}, children: [host.chatBar.getView()] }), rightCtn ] }); host.holder.appendChild(singlePage); resolve(host) }); }); };