var arrMsgBuffer = new Array(); var msgTime=1000; var msg_timer; var iMsgLastUpdateId=0; var strMsgDocList=""; var msg_curr_show_content_id = ""; var msg_curr_show_content_type = ""; var msg_my_id="sys_message"; /* 初始化消息模块 msgInitId:上次消息的最大id */ function msg_init(msgInitId,time=3){ iMsgLastUpdateId=msgInitId; msgTime=time*1000; } function msg_start(){ msg_send(); } function msg_stop(){ clearTimeout(msg_timer) } function msg_push(type,data,docid,time,book=0,paragraph=0){ /* data.type data.data data.doc */ var newMessage={ type:type, data:data, docid:docid, time:time, book:book, para:paragraph }; arrMsgBuffer.push(newMessage); var obj = new Object(); obj.id=0; obj.sender=getCookie("username"); obj.type=newMessage.type; obj.docid=newMessage.docid; obj.time=newMessage.time/5000; obj.read=1; obj.data=JSON.parse(newMessage.data); //doc_msg_push(obj); msg_show_content(msg_curr_show_content_type,msg_curr_show_content_id); } function msg_reload(){ iMsgLastUpdateId=1; } function msg_send(){ $("#net_up").html("▲"); if(arrMsgBuffer.length>0){ var operation="send"; } else{ var operation="get"; } $.post("message.php", { op:operation, lastid:iMsgLastUpdateId, doclist:strMsgDocList, data:JSON.stringify(arrMsgBuffer) }, function(data,status){ let xmlText = data; console.log("receive mseeage:"+data); let msgXml; if (window.DOMParser){ parser=new DOMParser(); msgXml=parser.parseFromString(xmlText,"text/xml"); } else{ // Internet Explorer msgXml=new ActiveXObject("Microsoft.XMLDOM"); msgXml.async="false"; msgXml.loadXML(xmlText); } if (msgXml == null){ alert("error:can not load Project. xml obj is null."); return; } let arrMsg = msgXml.getElementsByTagName("msg"); var arrWordNewMsg=new Array(); for(var x=0;x=0){ let xAllWord = gXmlBookDataBody.getElementsByTagName("word"); let xWord=xAllWord[wIndex]; let sReal = getNodeText(xWord,"real"); let wordStatus=editor_word_status(xWord); let wordBodyChange=false; let wordHeadChange=false; let wordNoteChange=false; let wordRelationChange=false; let newWord = new Object(); newWord.real = sReal; newWord.vaild=false; if((wordStatus!=7 && wordStatus!=5) || obj.sender==getCookie("username")) { msg_read(obj,2); if(obj.data.real!=null && obj.data.real!=""){ //setNodeText(xWord,"real",obj.data.real); //newWord.real = obj.data.real; //wordHeadChange=true; } if(obj.data.pali!=null){ //setNodeText(xWord,"pali",obj.data.pali); //wordHeadChange=true; } if(obj.data.mean!=null){ setNodeText(xWord,"mean",obj.data.mean); newWord.mean = obj.data.mean; newWord.vaild=true; wordBodyChange=true; } if(obj.data.org!=null){ setNodeText(xWord,"org",obj.data.org); newWord.parts = obj.data.org; newWord.vaild=true; wordBodyChange=true; } if(obj.data.om!=null){ setNodeText(xWord,"om",obj.data.om); newWord.partmean = obj.data.om; newWord.vaild=true; wordBodyChange=true; } if(obj.data.case!=null){ setNodeText(xWord,"case",obj.data.case); newWord.case = obj.data.case; newWord.vaild=true; wordBodyChange=true; } if(obj.data.parent!=null){ setNodeText(xWord,"parent",obj.data.parent); } if(obj.data.note!=null){ setNodeText(xWord,"note",obj.data.note); wordNoteChange=true; } if(obj.data.rela!=null){ //setNodeText(xWord,"rela",decodeURI(obj.data.rela)); setNodeText(xWord,"rela",obj.data.rela); wordRelationChange=true; } if(obj.data.bmc!=null){ setNodeText(xWord,"bmc",obj.data.bmc); wordBodyChange=true; } if(obj.data.bmt!=null){ setNodeText(xWord,"bmt",obj.data.bmt); } if(obj.data.lock!=null){ setNodeText(xWord,"lock",obj.data.lock); wordBodyChange=true; } editor_word_status(xAllWord[wIndex],6); } if(wordHeadChange){ updataWordHeadByIndex(wIndex); } if(wordBodyChange){ modifyWordDetailByWordIndex(wIndex); } if(wordNoteChange ||wordRelationChange){ //updateWordNote(xWord); refreshWordNoteDiv(xWord.parentNode.parentNode); } if(newWord.vaild){ if(!mDict[sReal]){ mDict[sReal] = new Array(); } let isExsit=false; for(let x in mDict[sReal]){ if(mDict[sReal].mean && mDict[sReal].mean==newWord.mean && mDict[sReal].parts && mDict[sReal].parts==newWord.parts && mDict[sReal].partmean && mDict[sReal].mean==newWord.partmean && mDict[sReal].case && mDict[sReal].case==newWord.case ){ isExsit = true; } } if(!isExsit){ mDict[sReal].push(newWord); } } } break; case "2"://译文 let tranBlock = doc_tran("#"+obj.data.id); if(tranBlock==null){ tranBlock = doc_tran("#"+obj.data.id,true); } if(tranBlock){ //if(tranBlock.text(obj.data.begin,obj.data.end,"status")!=7 ) { msg_read(obj,2);//设置为自动采纳 console.log("句子 自动采纳"); tranBlock.text(obj.data.begin,obj.data.end,"text",obj.data.text); tranBlock.text(obj.data.begin,obj.data.end,"status",5); sen_save(obj.data.id,obj.data.begin,obj.data.end,obj.data.text); } } break; } } catch(e){ console.error(e.message); console.error(e.stack); } doc_info.sendmsg=true;//发送消息 if(obj.read>0){ return(true); } else{ return(false); } } function msg_word_msg_num(wid){ var iMsg=0; for(var i=0;i100){ iMsg = "+99"; } $("#icon_notify_"+msg_my_id).html(iMsg.toString()); $("#icon_notify_"+msg_my_id).show(); } } //显示消息内容 function msg_show_content(type,id){ if(type=="" || id==""){ return; } let arrid; let sen_begin,sen_end; if(type==2){ arrid = id.split("-"); id=arrid[0]; sen_begin=arrid[1]; sen_end=arrid[2]; } msg_curr_show_content_id=id; msg_curr_show_content_type=type; var iMsg=0; var outHtml=""; var iLastTime=0; for(var i=0;i60*3){ var d = new Date() d.setTime(gDocMsgList[i].time*1000); //var Local_date=d.toLocaleDateString().split("/"); var Local_time=d.toLocaleTimeString(); //將時間去掉秒的信息 if(Local_time && Local_time.split(":").length==3){ var Local_time_string=Local_time.split(":")[0]+":"+Local_time.split(":")[1]; Local_time_string+=Local_time.split(":")[2].slice(2); } else{ var Local_time_string=d.toLocaleTimeString() } outHtml+= "
"+d.toLocaleDateString()+" "+Local_time_string+"
";//d.toLocaleeString() } iLastTime=gDocMsgList[i].time; var myName=getCookie("username"); if(gDocMsgList[i].sender==myName){ outHtml+= "
"; outHtml+= "
"; outHtml+= "
"+gDocMsgList[i].sender+"
"; } else{ outHtml+= "
"; outHtml+= "
"+gDocMsgList[i].sender+"Apply
"; } switch(parseInt(type) ){ case 1: if(gDocMsgList[i].data.pali!=null){ outHtml+= ""; } if(gDocMsgList[i].data.real!=null){ outHtml+= ""; } if(gDocMsgList[i].data.mean!=null){ outHtml+= ""; } if(gDocMsgList[i].data.org!=null){ outHtml+= ""; } if(gDocMsgList[i].data.om!=null){ outHtml+= ""; } if(gDocMsgList[i].data.case!=null){ outHtml+= ""; } if(gDocMsgList[i].data.parent!=null){ outHtml+= ""; } if(gDocMsgList[i].data.note!=null){ outHtml+= ""; } if(gDocMsgList[i].data.rela!=null){ let strRelation=decodeURI(gDocMsgList[i].data.rela); outHtml+= ""; } if(gDocMsgList[i].data.lock!=null){ outHtml+= ""; } if(gDocMsgList[i].data.bmc!=null){ outHtml+= ""; } if(gDocMsgList[i].data.bmt!=null){ outHtml+= ""; } break; case 2: outHtml += ""; break; } switch(gDocMsgList[i].read){ case 1: break; case 2: outHtml+= "
已经自动采纳
"; break; case 3: outHtml+= "
已被采纳
"; break; } outHtml+= "
"; } } $("#msg_panal_content").html(outHtml); switch(type){ case 1: updataWordHeadById(id); var xAllWord = gXmlBookDataBody.getElementsByTagName("word"); var wordSpell = getNodeText(xAllWord[getWordIndex(id)],"real"); var wordId = getNodeText(xAllWord[getWordIndex(id)],"id"); wordSpell = "" + wordSpell + ""; $("#msg_content_title").html(wordSpell); break; case 2: break; } msg_set_tool_bar_msg_counter(); } //刷新消息列表 function msg_update_msg_list(){ let strHtml=""; let msgList= new Array(); for(var i=0;i=0){ if(gDocMsgList[i].read==0){ msgList[iFind].unread++; } msgList[iFind].counter++; msgList[iFind].newTime=gDocMsgList[i].time; msgList[iFind].sender = gDocMsgList[i].sender; } //没找到 else{ objMsg=new Object(); objMsg.id=gDocMsgList[i].data.id; objMsg.type=gDocMsgList[i].type; if(gDocMsgList[i].read==0){ objMsg.unread=1; } else{ objMsg.unread=0; } objMsg.counter=1; objMsg.newTime=gDocMsgList[i].time; objMsg.sender = gDocMsgList[i].sender; msgList.push(objMsg); } break; } } strHtml+="
    "; msgList.sort(sortNumber); for(var j=0;j<2;j++){ for(var i=0;i0){ times=0; } else{ times = 1; } if(times==j){ strHtml+="
  • "; var d = new Date() d.setTime(msgList[i].newTime*1000); switch(msgList[i].type){ case 1: var xAllWord = gXmlBookDataBody.getElementsByTagName("word"); var wIndex=getWordIndex(msgList[i].id); if(wIndex>=0){ var wordSpell = getNodeText(xAllWord[getWordIndex(msgList[i].id)],"real"); } else{ var wordSpell = "unkow"; } strHtml+=""; if(msgList[i].unread>0){ strHtml+=""+msgList[i].unread+""; } strHtml+="[«]"; strHtml+=""+wordSpell+""; strHtml+=""+d.toLocaleString()+""; break; case 2: strHtml+=""+msgList[i].id+""; strHtml+=""+d.toLocaleString()+""; break; } strHtml+="
  • "; } } } strHtml+="
"; $("#msg_panal_list").html(strHtml); } function _msg_find_id_in_list(arrList,id){ for(var i=0 ; i